/*
 * Copyright 2011 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.google.code.qsecurity.client;

import com.google.code.qsecurity.client.ui.ForgottenPasswordView;
import com.google.code.qsecurity.client.ui.LoginView;
import com.google.code.qsecurity.client.ui.SignupView;
import com.google.code.qsecurity.client.ui.VerificationView;
import com.google.code.qsecurity.shared.QRequestFactory;
import com.google.inject.Inject;

/**
 * Implementation of {@link QClientFactory}.
 */
public class QClientFactoryImpl implements QClientFactory {

	private final QRequestFactory requestFactory;
	private final LoginView loginView;
	private final SignupView signupView;
	private final VerificationView verificationView;
	private final ForgottenPasswordView forgottenPasswordView;
	private final QConstants constants;
	
	@Inject
	public QClientFactoryImpl(QRequestFactory requestFactory, LoginView loginView,
			SignupView signupView, VerificationView verificationView,
			ForgottenPasswordView forgottenPasswordView, QConstants constants) {
		this.requestFactory = requestFactory;
		this.loginView = loginView;
		this.signupView = signupView;
		this.verificationView = verificationView;
		this.forgottenPasswordView = forgottenPasswordView;
		this.constants = constants;
	}
	
	@Override
	public LoginView getLoginView() {
		return loginView;
	}

	@Override
	public SignupView getSignupView() {
		return signupView;
	}

	@Override
	public VerificationView getVerificationView() {
		return verificationView;
	}

	@Override
	public ForgottenPasswordView getForgottenPasswordView() {
		return forgottenPasswordView;
	}

	@Override
	public QRequestFactory getRequestFactory() {
		return requestFactory;
	}

	@Override
	public QConstants getConstants() {
		return constants;
	}

}
